package com.project;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * 服务器类
 */

public class Server {
    private static String header = "HTTP/1.1 200 OK\r\n" +
            "Content-Type: text/html;charSet=utf-8\r\n" +
            "\r\n";
    private Server(){
//        try {
//            ServerSocket serverSocket = new ServerSocket(8088);
//
//            while (true){
//                // 监听端口，如果有客户端链接到服务器，将链接信息封装成 Socket对象
//                Socket socket =serverSocket.accept();
////               从socket中得到读取流，用于读取客户端发送的数据
//                InputStream in = socket.getInputStream();
////                从socket中得到写入流，用于将数据发送给客户端
//                OutputStream out = socket.getOutputStream();
//
//                byte[] by = new byte[1024];
////                将读取流中的数据，读取到byte数组中
//                in.read(by);
////                将byte数组，转换为String
//                String str = new String(by);
////                打印
//                System.out.println("客服端发送:"+str);
////                发送数据到客户
//                out.write("欢迎光临".getBytes());
//                out.flush();
////                关闭流
//                out.close();
//                in.close();
//                socket.close();
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }

        try {
//            开启服务器，开放8088端口
            ServerSocket serverSocket = new ServerSocket(8088);
//            监听端口，如果有客户端链接到服务器，就将信息封装到socket中
            while (true) {
                Socket socket = serverSocket.accept();

//         从socket中得到读取流，用于读取客户的读取信息
                InputStream in = socket.getInputStream();
//            从socket中得到写入流，用于写入客户的读取信息。
                OutputStream out = socket.getOutputStream();

                byte[] by = new byte[1024];
//            将读取流中的数据，读取到byte数组中
                in.read(by);
//            将byte数组转换为String trim去掉内容后面空格
                String str = new String(by).trim();
//             输出
                System.out.println("客户端发出:" + str);

//            发送到客服端
                out.write(header.getBytes());
                out.write("欢迎光临".getBytes());
                out.flush();

//            关闭流
                out.close();
                in.close();
                socket.close();
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new Server();

    }
}
